import { PluginOption } from 'vite'
/*
代码中通过添加 <script> 和 <link> 标签来引入不同的 JavaScript 和 CSS 资源。
这些资源的 URL 中包含 t= + 当前时间戳，
这样可以确保每次构建时都会获取最新版本的文件（防止浏览器缓存）。

总体来说，这段代码的作用是在构建时自动向生成的 HTML 文件中插入特定的外部脚本和样式表链接，
以及确保这些链接每次都是唯一的，避免缓存问题。
*/
export function createVitePlugin() {
	const vitePlugins: PluginOption[] = []

	vitePlugins.push({
		name: 'pre-transform-html',
		transformIndexHtml: {
			/*
			order: 'post'：

			这是 transformIndexHtml 的一个选项，指定了处理函数的执行顺序为 "post"。
			这意味着这个处理程序会在 HTML 文件生成之后执行，允许你在最终生成的 HTML 上进行修改。
			*/
			order: 'post',
			handler(html, { filename, server }) {
				return [
					{
						tag: 'script',
						attrs: {
							src: '/web/kdv/biz/i18n/sac/lang.min.js?t=9.0',
						},
					},
					{
						tag: 'script',
						attrs: {
							src: '/web/kdv/biz/config/sac/loader.min.js',
						},
					},
					{
						tag: 'script',
						attrs: {
							src: './brand/index/index.js?t=' + new Date().getTime(),
						},
					},
					{
						tag: 'link',
						attrs: {
							rel: 'stylesheet',
							href: './brand/index/style.css?t=' + new Date().getTime(),
						},
						/*
						injectTo: 'body'：

						这个属性用于指定插入的标签应该注入到 HTML 的哪个部分。
						在这里，指定了将 <link> 标签注入到 <body> 中，而不是 <head>。
						*/
						injectTo: 'body',
					},
					{
						tag: 'link',
						attrs: {
							rel: 'stylesheet',
							href: '/web/kdv/biz/i18n/sac/lang.min.css?t=9.0',
						},
						injectTo: 'body',
					},
				]
			},
		},
	})

	return vitePlugins
}
